From: Florian Müllner Date: Tue, 8 Jan 2019 21:03:13 +0000 (+0100) Subject: shellDBus: Return error on invalid app IDs X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~530^2^2~233 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=1e2a10f83b878a9bbf3d51e042c67ef741c348fd;p=gnome-shell.git shellDBus: Return error on invalid app IDs When passing an invalid or unknown app ID to FocusApp(), we currently open the app picker and silently fail to select the desired app. Instead of half-working like that, make it clear that the argument was invalid by returning an appropriate error. (It's easy to get the ID wrong, as unlike appstream/flatpak IDs, we include the ".desktop" suffix). Part-of: --- diff --git a/js/ui/shellDBus.js b/js/ui/shellDBus.js index aeabe6d81..39bba7aa3 100644 --- a/js/ui/shellDBus.js +++ b/js/ui/shellDBus.js @@ -1,7 +1,7 @@ // -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*- /* exported GnomeShell, ScreenSaverDBus */ -const { Gio, GLib, Meta } = imports.gi; +const { Gio, GLib, Meta, Shell } = imports.gi; const Config = imports.misc.config; const ExtensionDownloader = imports.ui.extensionDownloader; @@ -153,6 +153,15 @@ var GnomeShell = class { return; } + const appSys = Shell.AppSystem.get_default(); + if (appSys.lookup_app(id) === null) { + invocation.return_error_literal( + Gio.DBusError, + Gio.DBusError.FILE_NOT_FOUND, + `No application with ID ${id}`); + return; + } + Main.overview.selectApp(id); invocation.return_value(null); }